package classpath

import (
	"os"
	"path/filepath"
)

// DirEntry 目录形式的类路径
type DirEntry struct {
	//绝对路径
	absDir string
}

func newDirEntry(path string) *DirEntry {
	//将path参数转化成绝对路径
	absDir, err := filepath.Abs(path)
	//出错则终止运行
	if err != nil {
		panic(err)
	}
	return &DirEntry{absDir: absDir}
}

func (de *DirEntry) readClass(className string) ([]byte, Entry, error) {
	//拼接类的绝对路径
	fileName := filepath.Join(de.absDir, className)
	//读取二进制文件流并返回
	data, err := os.ReadFile(fileName)
	return data, de, err
}

func (de *DirEntry) String() string {
	//返回绝对目录
	return de.absDir
}
